package com.itestor.iptv.modules.common.actions;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.itestor.iptv.global.GlobalConstant;
import com.itestor.iptv.modules.common.domain.UserRoleGroup;
import com.itestor.iptv.modules.common.service.UserService;
import com.itestor.iptv.modules.common.utils.CommonConstant;
import com.itestor.iptv.modules.common.vo.User;
import com.itestor.iptv.global.exception.WebApplicationException;

/**
 * 
 * @author Mr.li
 *
 */
public class UserGrantAction extends Action {

	/**
	 * Logger for this class.
	 */
	private static final Logger logger = Logger.getLogger(UserGrantAction.class);

	/**
	 * UserService.
	 */
	private UserService userService;

	/**
	 * @param mapping struts mapping
	 * @param request request
	 * @param form action form
	 * @param response response
	 * @return action forward
	 * @throws Exception any exception
	 */
	public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
		String username = request.getParameter("username");
		
		if (StringUtils.isEmpty(username)) {
			throw new WebApplicationException("global.error.submit", GlobalConstant.PROPERTIES_BUNDLE);
		}
		
		User user = userService.get(username);
		
		if (user != null) {
			String roleGroupId = request.getParameter("roleGroupId");
			Integer userId=user.getId();
			
			if(!StringUtils.isEmpty(roleGroupId)){
			    //user.setRoleGroupId(Integer.parseInt(roleGroupId));
			    System.out.println("userid "+ userId +"isRoleGroup" +roleGroupId);
			    
			    UserRoleGroup userRoleGroup =new UserRoleGroup();
			    userRoleGroup.setIdRoleGroup(Integer.parseInt(roleGroupId));
			    userRoleGroup.setIdUser(userId);
			    
			    userService.grantRoleGroup(userRoleGroup);
			}			
			request.setAttribute(CommonConstant.REQUEST_ATTR_USER, user);			
		}
		
		return mapping.findForward(GlobalConstant.FORWARD_SUCCESS);
	}

	/**
	 * @param pUserService the userService to set
	 */
	public void setUserService(UserService pUserService) {
		userService = pUserService;
	}
}
